私は多くの質問を読みましたが、私にとって正しい答えを見つけることができませんでした。
VS2012でプロジェクトをコンパイルしようとすると、この結果があります:
コマンド "....\tools\bin\nuget pack Packages\Lib.Html.nuspec-OutputDirectory ....\bin\Zip\Packages -NoPackageAnalysis"はコード1で終了しました。
エラーが発生するはずの.csprojファイルでコード行を探しました。
<Exec Command="$(ProjectDir)..\..\tools\bin\nuget pack $(ProjectDir)Packages\Lib.Html.nuspec -OutputDirectory $(OutputPath)Packages -NoPackageAnalysis" />
私は何を間違えていますか?
[編集]そのプロジェクトのデバッグを起動し、「ビルドエラー」を無視すると、新しいアラートが表示されます。
「デバッグターゲット '[project.exe path]'がないため、Visual Studioはデバッグを開始できません。プロジェクトをビルドして再試行するか、OutputPathプロパティとAssemblyNameプロパティを適切に設定して、ターゲットアセンブリの正しい場所を指定してください。」
最初のステップは、実際にエラーが何であるかを把握することです。これを行うには、MsBuild出力を拡張して診断します。これにより、実際に実行されたコマンドと、できれば完全なエラーメッセージが明らかになります。
プロジェクトを右クリック->プロパティ->ビルドイベント
ビルド後イベントコマンドラインテキストブロックのテキストを削除します
私の場合:パスのフォルダー名に空白がありますG:\Other Imp Projects\Mi.....
フォルダーから空白を削除する
例:Other Imp Projects
->> Other_Imp_Projects
パスに引用符(""
)を追加します。
例:mkdir "$(ProjectDir)$(OutDir)Configurations"
//二重引用符を見る
これは、JaredPar ...からの回答に基づいて構築されており、VS2017用です。 Visual Studio 2017には同じ「ビルドと実行」オプションがあります。
「chmod + x ""」コマンドがコード1で終了しました。
ビルド出力ウィンドウで「エラー」を検索し、同じ一般的な領域でいくつかのエラーを見つけました。ビルド出力のリンクをクリックすると、エラーが.targetsファイルのこのエントリに関係していることがわかりました。
<Target Name="ChmodChromeDriver" BeforeTargets="BeforeBuild" Condition="'$(WebDriverPlatform)' != 'win32'">
<Exec Command="chmod +x "$(ChromeDriverSrcPath)"" />
</Target>
ビルド出力では、探していたパッケージフォルダーにSelenium.WebDriver.ChromeDriver v2.36が見つからなかったことを示す、より詳細なエラーメッセージも見つかりました。プロジェクトのNuGetパッケージを確認し、バージョン2.36は実際、インストール済みパッケージのリストに含まれています。 2.36のパッケージファイルを見つけ、フォルダー、サブフォルダー、およびファイルの属性を「読み取り専用」から「読み取り/書き込み」に変更しました。構築されたが、同じ障害。場合によっては、パッケージの別のバージョンに「更新」してから元に戻すと、このタイプのエラーが修正される場合があります。そこで、NuGetパッケージの管理の参照を2.37に「更新」し、ビルドし、失敗し、「更新」して2.36に戻し、ビルドし、「chmod + x」エラーメッセージなしでビルドに成功しました。
私が作成していたプロジェクトは、Appiumテストツール用のVisual Studioプロジェクトテンプレート、「Develop_Automated_Test」というテンプレート名に基づいていました。
パスの確認:TFS用に別のビルドサーバーを使用している場合(ほとんどの場合)、. csprojファイル内のすべてのパスが一致することを確認してください- TFSサーバーパス。 TFSサーバーのパスではなく、開発マシンのパスへの参照があるときに* .csprojファイルをチェックインすると、上記のエラーが発生しました。
複数行コマンドの削除:また、予防措置として、複数行コマンドをxmlの単一行コマンドに削除してみてください。 TFSで問題を引き起こす* .projに次のxmlがありました。
<Exec Condition="bl.."
Command=" Blah...
..." </Exec>
上記のxmlをこれに変更するとうまくいきました:
<Exec Condition="bl.." Command=" Blah..." </Exec>
これは確かに遅すぎますが、これは誰かを助けることもできます。
私の場合、ソースファイルが別のプロセスで使用されていることがわかりました。このプロセスは、宛先へのコピーを制限していました。コマンドプロンプトを使用して(ビルド後のコマンドをコマンドプロンプトにコピーして貼り付けて実行すると、エラー情報が表示されます)。
コマンドプロンプトからコピーできることを確認してください。
私にとって、VS 2013では、UIプロジェクト(MVC)の[参照設定]で不足している参照を削除する必要がありました。欠落しているものは参照されていませんでした。
Visual Studioを管理者として開いてみてください。