2013-02-09 16 views
5

Pracujemy nad systemem rezerwacji dla firmy. Kiedy po raz pierwszy próbowaliśmy uruchomić go na swoim komputerze, stwierdziliśmy, że musimy pobrać .NET Framework 4.0. Zrobiliśmy to (a raczej pobraliśmy wersję 4.5, ponieważ link do wersji 4.0 nie działał). Teraz, kiedy próbujemy go uruchomić, nic się nie dzieje.Program nie zostanie uruchomiony bez instalacji Visual Studio?

Zbudowaliśmy program w C# z Entity Framework - Code First, jeśli to zawęża.

Czy brakuje czegoś w ustawieniach podczas publikowania? Próbowaliśmy skompilować go w wydaniu i kreatorze publikowania, ale nie działało.

+0

Czy na pewno masz kompilację wydania? –

+0

Sprawdź dziennik zdarzeń aplikacji systemu Windows. –

+0

@ ofstream/cóż, zmieniliśmy z Debug na Release i wszystkie pliki były w folderze bin/Release, z tego jestem pewien co najmniej ale czy to naprawdę jest wersja release? Nie wiem. – noMad17

Odpowiedz

1

Jest to prawdopodobnie spowodowane brakującym montażem. W konfiguracji programistycznej wszystkie biblioteki mają uruchomione programy, a we wdrożeniu brakuje/są dll (s).

Możesz spróbować kontrolować GAC na maszynie programistycznej i spróbować zlokalizować, czy którakolwiek z bibliotek, z których korzystasz, z wyjątkiem bibliotek .NET, jest zainstalowana w GAC. Być może odwoływałeś się do biblioteki dll z GAC, a we wdrożeniu ta biblioteka może być niedostępna w GAC. Widziałem to wcześniej w projekcie typu sharepoint.

Sprawdzanie dziennika zdarzeń systemu Windows jest również przydatne. Możesz zlokalizować faktyczny wyjątek.

p.s. jeśli jest to projekt asp.net, nie zapomnij uruchomić regiis.exe po wdrożeniu struktury.

0

Jeśli aplikacja ma graficzny interfejs użytkownika i nie oznacza, że ​​aplikacja nie działa w konstruktorze. Najlepszą rzeczą, jaką możesz zrobić, to zalogować się na każdym kroku z konstruktora z mniej więcej tak:

public void log(string msg) 
{ 
    StreamWriter file2 = new StreamWriter(@"c:\file.txt", true); 
    file2.WriteLine(msg); 
    file2.Close(); 
} 

i nie nazywają go po każdej linii w konstruktorze jak

log("InitializeComponent"); 

Jeśli używasz zdarzenia FormLoad, należy też to tam róbcie. Sprawdź również swój kod pod kątem pustych próbnych połowów.

Powiązane problemy