Vs for Macバージョンでソリューションを構築することはできませんが、同じソリューションをvs for Windows(vs 2017)で構築でき、機能します。
この問題を修正する方法は?両方でサポートできます(WindowsとMacのvs)
/ Library/Frameworks/Mono.framework/Versions/5.0.1/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets
私は2か月のようにその問題を修正しようとしていましたが、最終的に何が問題なのかを見つけました。 Windowsスタイルのパスであるプロジェクトファイルにバックスラッシュ「\」がありましたが、Macを使用しているため、プレーン名「wwwroot\test」(ネストされていない)でディレクトリを作成していました。そのフォルダを削除すると、正常にビルドされます。
Osxでdotnetcoreを実行していましたが、同じ問題が発生しました。問題は、Windowsパスを使用してフォルダーを生成したことでした。ディスク上に作成した場合、名前が\Uploads
であるため、Finderには表示されませんでした。 ls -la
を実行して、そこに奇妙なフォルダやファイルがないか確認します。 画像を参照
ここでも同じ問題があります。単純な掃除は私にはうまくいきませんでした。結局、binフォルダーとobjフォルダーを削除しました。その後、パッケージの復元を行うと、すべてが再び正常になります。おそらくパッケージキャッシュの問題です。
私は今晩同じことを経験し、それを機能させました。クリーンとビルドを実行するだけで、問題なく動作しました。
ただし、プロジェクトをサムドライブにコピーし、Githubのようなものを使用してプロジェクトを転送していませんでした。 bin/objディレクトリにWindows上のVSからのいくつかの残骸があったと思います。
Objとbinを削除しましたが、機能しません。「\」で作成されたすべてのファイルを削除しましたが、プロジェクトは機能しません。最後に、プロジェクトをgitからプルして再度ビルドすると、機能します(注:gitからプロジェクトのクローンを作成する場合、新しいコミットは行いません)
キャッシュなどで発生する可能性があると思います
あなたが私と同じ問題を抱えているかどうかはわかりません。 .netコアプロジェクトをWindowsで実行していますが、macOsでプロジェクトを実行しようとすると、「エラーMSB3552:リソースファイル "**/*。resx"が見つかりません」というエラーメッセージが表示されます。
私のプロジェクトでは、ログファイルをフォルダーに保存するための構成があります
"WriteTo": [
{
"Name": "RollingFileAlternate",
"Args": {
"logDirectory": ".\\Logs",
"fileSizeLimitBytes": 10485760
}
}
]
プロジェクトを初めて実行すると、「Logs」という名前のフォルダーが作成されますが、macOsで実行すると、「。\ Logs」という名前のフォルダーが作成され、非表示のフォルダーになります。したがって、これは問題です。その後、プロジェクトはビルド時にそのエラーを受け取ります。
ソリューションは、構成を次のように変更しています。
"WriteTo": [
{
"Name": "RollingFileAlternate",
"Args": {
"logDirectory": "Logs",
"fileSizeLimitBytes": 10485760
}
}
]
これで、プロジェクトをmacOで実行できるようになりました。
Windowsはディレクトリパスでバックスラッシュを使用しますが、macOはスラッシュを使用するため、macOでWindowsでコーディングするプロジェクトをビルドする必要がある場合は、ファイル、フォルダ、パスに関連するすべてのコードを確認する必要があります(例:コードログファイルを保存するフォルダを作成するには、アップロードファイルを保存するフォルダを作成します。
それが役に立てば幸い。
プロジェクトファイル構造に新しいファイルが生成されていないこと、および私のシナリオのように、新しい.csproj、.vbproj、または.fsprojファイル(どこかにネストされている可能性があります)が作成されていないことを確認します。深いファイルパスも、この非冗長な問題を引き起こす可能性があります。ものを深く入れすぎないように注意してください。
同じエラーがありました。これらの回答を読んだ後、バックスラッシュを使用したパスが原因である必要があると考えました。
.csprojファイルで\
を使用してファイルを参照している行を削除することをいじりましたが、役に立ちませんでした。
それを見つけるのにしばらく時間がかかりましたが、何かがwwwroot\ImageCache
ディレクトリを作成したことに気づきました。このディレクトリを削除すると、ビルドが機能しました。