NuGetパッケージを介して存在するファイルの内容を変更することはできますか?意味、あなたが新しいMVC3ウェブサイトを作ったとしましょう。ホームページを更新するNuGetパッケージをインストールしたいとします。おそらくウェルカムメッセージを変更し、作成したいくつかの新しいビューを含むようにレイアウトを変更し、新しいViewを返すメソッドを含むようにHome Controllerを更新してください。これはどのようにして行われますか?NuGetパッケージ経由で既存のファイルをどのように変更しますか?
答えて
NuGetパッケージをインストールしたら、必要なファイルを手動で変更できます。 VSで(または別のエディタで)編集してください。 NuGetパッケージに関する唯一の違いは、元のパッケージファイルとファイルの間で変更が検出されたときにパッケージをアンインストール/更新すると、変更されたファイルが削除されないことです。これがログであることに言及する予定です。
更新:
NuGetは.transform and .pp filesを介してパッケージのインストール時にプロジェクトファイルを変更するためのサポートを持っています。しかし、これには制限があります.transformファイルは設定ファイルに内容を追加します(編集できません).ppファイルは新しいソースコードファイル用です。
PowerShell(つまりinstall.ps1)でEnvDte CodeModelを使用すると、既存のソースコードを変更できます。それはもう少し複雑です。
NuGet Package ExplorerでJQuery NuGetパッケージを開く(またはパッケージを解凍する)と、install.ps1とcommon.ps1を見ると、自動的に_references.jsに行が追加される例が見えますJQuery用にJQuery APIがIntelliSenseに表示されるようにします。
しかし、はい、自動的にコード(特に人々が編集できるコード)を更新するのはかなり複雑なプロセスです。 JQueryの例では、正規表現を使用して更新する前に既存の参照を検索します。これは、既知の場所の特定のファイルに1行のコメントを追加/更新することです(また、それは単なるコメントなので間違っています)。
私はOPのリクエストのようなものに対して、もっと多くの例やヘルパー関数のライブラリを見たいと思っています。
ここcommon.ps1から一つの関数です:
function AddOrUpdate-Reference($scriptsFolderProjectItem, $fileNamePattern, $newFileName) {
try {
$referencesFileProjectItem = $scriptsFolderProjectItem.ProjectItems.Item("_references.js")
}
catch {
# _references.js file not found
return
}
if ($referencesFileProjectItem -eq $null) {
# _references.js file not found
return
}
$referencesFilePath = $referencesFileProjectItem.FileNames(1)
$referencesTempFilePath = Join-Path $env:TEMP "_references.tmp.js"
if ((Select-String $referencesFilePath -pattern $fileNamePattern).Length -eq 0) {
# File has no existing matching reference line
# Add the full reference line to the beginning of the file
"/// <reference path=""$newFileName"" />" | Add-Content $referencesTempFilePath -Encoding UTF8
Get-Content $referencesFilePath | Add-Content $referencesTempFilePath
}
else {
# Loop through file and replace old file name with new file name
Get-Content $referencesFilePath | ForEach-Object { $_ -replace $fileNamePattern, $newFileName } > $referencesTempFilePath
}
# Copy over the new _references.js file
Copy-Item $referencesTempFilePath $referencesFilePath -Force
Remove-Item $referencesTempFilePath -Force
}
ありがとう!この種の仕事をするための非常に "Hello、World!" - yの例です。 – vbullinger
- 1. NuGetパッケージの既存ファイルに数行のコードを追加するにはどうすればよいですか?
- 2. nugetパッケージのunity.configファイルをどのように変換できますか?
- 3. ExcelはどのようにHTTP経由でファイルを "保存"しますか?
- 4. シングルコマンドでNuget経由で複数のパッケージをインストールする
- 5. 既存のVMSSをどのように更新しますか?
- 6. Pythonどのように "既存の"変数を変更する
- 7. 同期ゲートウェイ経由で既存の文書に添付ファイルを挿入しようとしています。
- 8. Javaで既存のファイルのエンコーディングを変更しますか?
- 9. MSDeployパッケージのインストール時に既存のファイルを保存するにはどうすればよいですか?
- 10. ASP.NETコアパッケージNugetパッケージの変更を保存してリモートパッケージに置き換えます
- 11. 既存のファイルをレールジェネレータで変更しますか?
- 12. NuGet Package Managerを既存のプロジェクトに更新すると、どのような影響がありますか?
- 13. パッケージをNuget経由でインストールできない
- 14. NuGetパッケージでGlobal.asaxを変更しますか?
- 15. Nugetパッケージ...プロジェクトに存在しません...パッケージ...フォルダ内に既に存在しています
- 16. NuGet Pushのパッケージのバージョン番号の変更を停止するにはどうすればよいですか?
- 17. NuGet Publish後にVisual Studio Team ServicesでNuGetパッケージを更新するにはどうすればよいですか?
- 18. Nuget私はどのようにパッケージの場所を指定できますか?
- 19. asp.net mvc。どのようにajaxビュー経由で変更を返す
- 20. 既に存在するファイルの名前を変更します。
- 21. .htaccessファイルを経由してphp.iniの値を変更しよう - webrivers
- 22. どのようにファイルを保存せずにC#の既存のExcelファイルの変更を保存しますか?
- 23. NuGetは私がNuGet経由imagesharpパッケージをインストールしようとしているが、私は以下の出力ウィンドウからエラーを取得していますImageSharp
- 24. 既存のhdf5ファイルのチャンクサイズを変更するにはどうすればよいですか?
- 25. 名前変更既存のCarrierWaveファイルあなたはCarrierWaveで既存のイメージの名前を変更するにはどうすればよい
- 26. Nuget経由でSpire.PdfViewer.Wpf.dllにアクセスする
- 27. Nugetはすべてのバージョンのパッケージを保存しますか?
- 28. 複数のcsvファイルの既存の列を変更します
- 29. 変更をGIT経由で1つのファイルに戻す
- 30. 既存のパッケージからnpmパッケージを作成するにはどうすればよいですか?
私が何を意味するかはかなりありません。私は、インストール自体を介してファイルを変更できますか?たとえば、NuGetパッケージ内のweb.configを変更できると聞きました。いくつかの指令やスクリプトなどがありますか?私はあなたがスクリプトを介して任意のファイルを変更することができると思いますが、それを行ういくつかの典型的な方法はありますか?したがって、パッケージをインストールすると、いくつかの新しいファイルが追加されますが、既存のファイルの一部が変更されます。たとえば、default.aspxの内容を変更するなどです。私の意味はまだ分かっていますか? – vbullinger
今、私は上記の私の答えを更新しました。短いナゲットでは、.pp/.transformファイルの一般的な単純なシナリオをサポートするために焼き付けられています。既存のコードを変更することはNuGetではサポートされておらず、PowerShellスクリプトを使用して行われます。私はCodeModelを見ていますが、簡単な例は見つかりませんでした。 –
ファイルを持っていることが分かりました - 私はppだと思っています - 名前空間のようなものの代わりに変数を残し、プロジェクトファイルなどから取得しますが、どのようにEntity Frameworkパッケージを追加しますかweb.configノード?それはスクリプトですか? – vbullinger