Как обновить ссылки на сборки в веб-сайте?

Я делаю сборку с использованием FinalBuilder Pro 7.

У меня есть веб-сайт asp.net, и я пытаюсь использовать действие FinalBuilder "Precompile Asp.net 2.0 Application". Ну, это не удается.

Для успешной сборки мне нужно запустить Visual Studio, открыть веб-сайт и либо собрать его вручную из VS, либо вручную обновить все ссылки. После этого это работает.

Теперь вопрос: как заставить FinalBuilder обновить эти ссылки? Даже если я создам проект веб-развертывания, связанный с веб-сайтом, и попытаюсь создать его с помощью действия msbuild, он потерпит неудачу по той же причине. Так или иначе ни одно действие не обновляет ссылки автоматически.

UPD: ОК. Может быть, мне нужно заставить msbuild обновить ссылки. Как это сделать? Я нашел некоторые свойства, которые я могу изменить в действии msbuild. На названный ResolveAssemblyReferencesDependsOn я попытался поставить значение = true. Не помогло Есть идеи?

3 ответа

В.NET есть разные типы проектов, такие как проект библиотеки, проект веб-сайта, проект веб-API и т. Д. Как вы уже упоминали в своем вопросе, это проект веб-сайта, поэтому я собираюсь дать вам решение для проекта веб-сайта. Вы можете построить проект двумя способами. Либо вы можете построить визуальную студию или вы можете построить с помощью MS Build. Если вы строите свой проект с использованием VS, вы можете обновить ссылки на ваши зависимости, выполнив команду "Update-Package -reinstall" в консоли диспетчера пакетов. Он автоматически переустановит все пакеты. Обратите внимание, что все ваши зависимости перечислены в файле packages.config. Во-вторых, если вам нужно построить свой проект с помощью MS Build, используя приглашение cmd, чтобы загрузить все зависимости из nuget, вы должны выполнить nuget.exe. По которому будут загружены все ваши зависимости, но их ссылки могут не обновляться. Так что в проекте сайта у вас нет файла .proj. Таким образом, вы не можете иметь доступ к ссылкам ваших зависимостей. Теперь проблема в том, как вы можете изменить ссылки на ваши зависимости? В проекте веб-сайта ссылка на сборку существует в его файле .refresh. Поэтому вы должны изменить этот файл .refresh, чтобы обновить ссылку на сборку в проекте веб-сайта.

Вы пытались использовать действия "Build VS.NET Solution" или "MSBuild Project"? Оба должны разрешить ваши ссылки на сборки, если ссылка установлена ​​в правильном месте. Это требует, чтобы у вас был хотя бы файл проекта.

Насколько я понимаю, действие Precompile (которое использует MS aspnet_compile.exe - см. Http://msdn.microsoft.com/en-us/library/ms229863(VS.80).aspx) предназначено для повторной компиляции Приложение asp.net, которое ранее было построено через VS или MSBuild. Он выполняет компиляцию на месте, чтобы повысить производительность первого пользователя, который заходит на сайт, или создает развертываемое приложение (удаление исходного кода и т. Д.). Это не подразумевается как альтернатива VS/MSBuild.

Я не уверен на 100%, что понимаю проблему, но я считаю, что вам нужно иметь возможность автоматически исправлять некоторые пути в ссылках на сборки.

Я создал проект, чтобы справиться с этим (наряду с некоторыми другими вещами): https://refswap.codeplex.com/

Другие вопросы по тегам