4

ネイティブ DLL を含むネイティブ パッケージを作成しました。パッケージはSqlServerCompact.4.0.8852.1.nupkgのようなものです。

「Manage Nuget Packages ...」で GUI からパッケージをインストールすると、問題なくネイティブ DLL が Debug/Release フォルダーにコピーされます。ネイティブ DLL のコピーは、SqlSerCompact と同様のスクリプトによって行われます。

そして.bat、のパッケージ化手順を自動化する次のファイルがありMyProjectます。

..\..\tools\nuget\bin\NuGet.exe install MyProject\packages.config -o packages\
..\..\tools\nuget\bin\NuGet.exe install MyProjectTest\packages.config -o packages\
..\..\tools\nuget\bin\nuget update MyProject.sln
msbuild /m /p:Configuration=Release /p:Platform="x64" MyProject.sln
..\..\tools\nuget\bin\nuget pack MyProject.nuspec

上記のスクリプトは完全に実行されて取得されますMyProject.nupkg(コンパイルには .Net dll のみが必要です)。ただしnuget install、依存パッケージのコピー スクリプトは実行されません。したがって、コンパイルMyProjectTestは問題ありませんが、EXE を実行すると、Debug/Release フォルダにネイティブ DLL がありません。

私の質問は、コマンド ラインからパッケージをインストールするときに、powershell スクリプトが実行されないのはなぜですか? そして、それに対処する方法は?ありがとう!

4

1 に答える 1

9

NuGet.exe ではサポートされていません。これについては codeplex で議論が行われており、問題追跡システムで提起されたクローズ済みの問題がいくつかあります。この機能のサポートに関する問題については、David Ebbo によるブログ投稿もあります。

一般的な問題は、PowerShell スクリプト内で Visual Studio オブジェクト モデルを使用できるため、Visual Studio の外部からこれを公開し、すべてのシナリオをサポートできるようにすることは自明ではありません。

何が可能かを確認するための実験として、SharpDevelop を使用して、Visual Studio の外部から PowerShell スクリプトの実行をサポートすることを検討しました。NuGet.exeだけでなく、SharpDevelopが機能する必要があるため、これは非常に重いソリューションです。

于 2013-03-18T20:57:14.423 に答える